const m = require('./06-module.exports与exports')
console.log(m);
// 向外共享,模块作用域中的成员。两种方式:
// 1.使用module.exports.的方式直接追加成员
// 2.使用module.exports={} 赋值为新对象的成员
// 3.module.exports可以简写为exports向外共享成员 module.exports === exports//true

// 注意:向外共享成员时
// 时刻谨记 require()导入模块时 得到的永远是module.exports指向的对象
// exports与module.exports 都指向同一个对象
// 但最终向外共享的结果 永远都是module.exports所指向的对象 
// 为了防止混乱不要在同一个模块中同时使用exports与module.exports。

// 以下为个人总结  仅供参考
// 1.外界用require导入自定义模块时,得到的就是module.exports所指向的对象。如没有指向,则默认为{}。
// 2.module.exports ={} 优先级> module.exports.的方式。同时具有层叠性。
// 3.简写情况下 exports={} 优先级< module.exports.的方式
// 4.如果直接exports={},等于重新赋值了module,失去了module指向。
// 转而指向了一个字面量对象那么在去进行共享成员就会失败。除非重新恢复exports指向module。
// 总结:
// 1.最终向外共享的结果 永远都是module.exports所指向的对象 
// 2.尽量不要使用重新赋值为对象的形式去向外共享成员,易发生共享失败 歧义

